package com.sghj.SysPermission.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sghj.SysPermission.entity.SysRole;
import com.sghj.SysPermission.entity.Vo.roleAddVo;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xrx
 * @since 2022-02-18
 */
public interface SysRoleService extends IService<SysRole> {

    /**
     * 添加角色
     * @param role
     * @return
     */
    int addRole(roleAddVo role);

    /**
     * 根据id删除角色
     * @param rid
     * @return
     */
    int removeRoleById(Integer rid);

    /**
     * 修改角色信息
     * @return
     */
    int updateRole(roleAddVo role);

    /**
     * 根据id查询角色信息
     * @param rid
     * @return
     */
    roleAddVo getRoleById(Integer rid);

    IPage<SysRole> getRolePage(SysRole roleVo,IPage<SysRole> page);

    /**
     * 给角色分配权限
     * @return
     */
    boolean allocatMenus(Integer rid,int[] menus);

    /**
     * 获取该用户拥有的角色列表
     * @param uid
     * @return
     */
    List<SysRole> getUserRoleList(Integer uid);

    /**
     * 分配数据权限
     * @param
     * @param
     * @return
     */
    int allocatDataScope(SysRole role);

    /**
     * 查询角色拥有的门禁权限
     * @param rid
     * @return
     */
    String[] getBuildScopeListByRole(Integer rid);
}
